package tests;

import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;

public class LoginPage extends Utils {
    public static String url = "http://123.60.62.52:9090/blog_login.html";
    public LoginPage() {
        super(url);
    }

    /**
     * 检查页面是否可以正常打开
     */
    public void loginPageRight() {
        //通过检查页面元素是否存在来检查页面是否加载成功
        //检查提交按钮是否存在
        driver.findElement(By.cssSelector("#submit"));
        //检查输入框中登录这两个字是否存在
        driver.findElement(By.cssSelector("body > div.container-login > div > h3"));
        //检查页面中 我的博客系统是否存在
        driver.findElement(By.cssSelector("body > div.nav > span"));
    }

    /**
     * 进行登录测试---正常登录
     */
    public void loginSuc() {
        driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456");
        driver.findElement(By.cssSelector("#submit")).click();
        // 如何判断此时登录成功, 此时登陆成功的界面是和上述页面正常加载是不一样的
        // 如果此时可以点击查看全文 就说明此时是正常登陆的
        try{
            Thread.sleep(3000);
        }catch (Exception e){
            e.printStackTrace();
        }

        driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(1) > a"));  //你也没点呢
//        String title= driver.getTitle();
//        assert title.equals("博客列表");
        //driver.findElement(By.cssSelector("body > div.nav > a:nth-child(6)")).click();

    }
    /**
     * 进行登录测试---异常登录
     * 由于在tests中各项测试是有依赖的
     * 在测试异常登录之前 已经登陆过了 而我们的`drive对象并没有释放掉 并没使用这段 driver.quit();
     * 进入到博客列表页是获取不到错误弹窗的
     * 所以要在上述正常登录测试之后 让其返回到前一步
     * 但是返回之后 账号密码都在输入框内
     * 此时我们直接输入的内容 只是拼接在输入框的内容
     * 所以要先进行清空
     */
    public void loginFail() throws InterruptedException {
        //方法1
        /*driver.findElement(By.cssSelector("#username")).clear();
        driver.findElement(By.cssSelector("#password")).clear();*/
        //方法2 浏览器刷新
        driver.navigate().refresh();
        driver.findElement(By.cssSelector("#username")).sendKeys("zhangsan");
        driver.findElement(By.cssSelector("#password")).sendKeys("123456111");
        driver.findElement(By.cssSelector("#submit")).click();

        Thread.sleep(3000);
        Alert alert = driver.switchTo().alert();
        alert.accept();
    }
}
